Quantization matrices are commonly used in hybrid transform block-based encoder/decoders (CODECS) such as H.261/MPEG-1, H.262/MPEG-2, and MPEG-4. The quantization matrices permit frequency coefficients to be scaled at the encoder and unscaled at the decoder such that a varying level of precision can be given to different spatial frequencies. In particular, an efficient encoder often uses quantization matrices to allocate relatively more precision (and therefore relatively more bits) to lower spatial frequencies, since the human visual system is relatively more sensitive to variations in low spatial frequencies, and relatively less sensitive to variations in high spatial frequencies.
Both MPEG-1 and MPEG-2 video compression standards have two quantization tables (matrices) for 4:2:0 video. In 4:2:0 video chrominance (color) information is coded at one half the horizontal and vertical resolution of luminance (brightness) information. One quantization matrix is used for intra coding and the other quantization matrix is used for non-intra (inter) coding. The two tables are each given default values. The default intra quantization table has a distribution of quantizing values that roughly corresponds to the frequency response of the human eye when viewing an image (or picture) at a distance of six times the picture (or screen) width. The default non-intra quantization table is flat with a fixed value of 16. The constant quantization value appears at odds with the spatial frequency response of the human visual system (HVS). However, because the non-intra quantization table is used to code changes between pictures, temporal masking effects dominate the form of the table. For MPEG-2 4:2:2 and 4:4:4 video (which code chrominance at full vertical resolution) separate chrominance quantization matrices for intra and nonintra blocks can also be transmitted (or downloaded).
Various headers are used in a video stream (syntax) to specify whether (i) quantization matrices are present and specified in the following syntax of the bit stream or (ii) default matrices are to be used. Non-intra and intra quantization matrices can be separately indicated and transmitted (downloaded). In MPEG-2 a quantization matrix extension can optionally specify each of 4 potential quantization matrices: intra luma, non-intra luma, intra chroma, non-intra chroma.
ITU-T Recommendation H.264|ISO/IEC 14496-10 Advanced Video Coding Amendment 1: Fidelity Range Extensions (MPEG4-AVC FidExt, Joint Video Team (JVT) draft JVT-K047d4) operates on a similar principal to MPEG-2 (i.e., individual matrices are individually signaled to take either values that are transmitted in the bit stream or individually specified default values). MPEG4-AVC FidExt draft JVT-K047d4 does not take advantage of the fact that in practice an encoder often does not use the default values of quantization matrices (i.e., custom quantization matrices are transmitted in the bit stream), but that some duplication of the custom quantization matrices frequently occurs. MPEG4-AVC FidExt draft JVT-K047d4 has no ‘fall-back rules’ whereby certain matrices, if not transmitted, can assume the values of previously transmitted custom matrices for other color components.
For example, MPEG4-AVC FidExt draft JVT-K047d4 permits separate individual quantization matrices to be specified for the luminance component (Y) and both chrominance components (Cb and Cr). However, if a single custom matrix is desired for all 3 components, or even the same custom matrix for the 2 chroma components, the same matrix is signaled (transmitted) in the bit stream 3 or 2 times, respectively.
It would be desirable to have an efficient syntax for communication of quantization matrices between a video encoder and a video decoder, such that bit streams and decoders may be efficiently constructed